//
//  MYMainTabBar.swift
//  MYSinaWeico
//
//  Created by Magic Yu on 16/4/6.
//  Copyright © 2016年 Magic Yu. All rights reserved.
//

import UIKit

class MYMainTabBar: UITabBar {

    //重写父类的方法
    override init(frame: CGRect) {
        super.init(frame: frame)
        addSubview(plusBtn)
    }

    //当该视图通过 xib/storyBoard加载的时候 才会执行这个方法 在这个方法内部默认实现报错
    //一旦程序员实现了init 当前这个类的对象可以通过手写代码创建  默认为不支持通过xib/storyBoard加载
    required init?(coder aDecoder: NSCoder) {
        //默认实现报错
        fatalError("init(coder:) has not been implemented")
//        super.init(coder: aDecoder) //支持从storyBoard/xib 加载
//        addSubview(plusBtn)
    }
    
    //获取subViews中 tabBarButton的frame 达到把中间的位置空出来
    override func layoutSubviews() {
        super.layoutSubviews()
        
        //按钮的大小
        let btnW = self.frame.width / 5
        let btnH = self.bounds.height
        //将按钮全部部署到(0,0)位置
        let btnRect = CGRect(x: 0, y: 0, width: btnW, height: btnH)
        
        var index: CGFloat = 0
        //在子控件中遍历是按钮的控件
        for subView in subviews {
            //如果是按钮,给按钮设置frame的偏移距离   UITabBarButton是一个私有类 所以要通过这种方式获取
            if subView.isKindOfClass(NSClassFromString("UITabBarButton")!) {
            
                subView.frame = CGRectOffset(btnRect, index * btnW, 0)
                
                //让中间的位置空出来
                if index == 1 {
                    index++
                }
                
                index++
                
            }
        }
        //设置加号按钮的frame
//        plusBtn.frame = CGRectOffset(btnRect, 2 * btnW, 0)
//        let plusBtnW = btnW * 1
//        let plusBtnH = plusBtnW
        
        let plusBtnRect = CGRect(x: 0, y: 0, width: btnW, height: btnW)
        
        plusBtn.frame = CGRectOffset(plusBtnRect, 2 * btnW, -30)
        //将按钮移到最上层
        bringSubviewToFront(plusBtn)
        
        //按钮添加点击事件
//        plusBtn.addTarget(self, action: Selector("frameChanged"), forControlEvents: .TouchDown)
    }
    
//    func frameChanged() {
//    
//        UIView.animateWithDuration(0.5) { () -> Void in
//            var frame = self.plusBtn.frame
//            frame.width *= 1.2
//            plusBtn.frame.width = width
//            
//            
//        }
//    }
    
    
    //懒加载加号按钮
    lazy var plusBtn: UIButton = {
    
        let btn = UIButton()
        
//        btn.layer.cornerRadius = btn.bounds.width * 0.5
//        btn.layer.masksToBounds = true
        
        //设置背景图片
        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
        
        //设置背景图片
        btn.setBackgroundImage(UIImage(named: "tabbar1_compose_button"), forState: .Normal)
        btn.setBackgroundImage(UIImage(named: "tabbar1_compose_button_highlighted"), forState: .Highlighted)
        
//        var image = UIImage(named: "tabbar_compose_button")
//        image=image?.stretchableImageWithLeftCapWidth(1, topCapHeight: 1)
//        btn.setBackgroundImage(image, forState: .Normal)
        
        return btn
    
    }()

}































